package com.qdxwx.data.mapper.article;

import com.qdxwx.common.page.PageRequest;
import com.qdxwx.models.article.Article;
import com.qdxwx.models.article.ArticleQuery;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 文章DAO层接口
 * Qdx NetSchool Platform
 * @author qdxwx
 * @updateTime 2022/5/25
 * @description
 */
@Repository
public interface ArticleMapper {
	
	/**
	 * 创建文章
	 * @param article 文章实体
	 * @return 返回文章ID
	 */
	int insert(Article article);

	
	/**
	 * 修改文章信息
	 * @param article 文章实体
	 */
	int update(Article article);

	/**
	 * 删除文章
	 * @param articleId 文章ID串 如：(1,2,3,4)
	 */
	int deleteById(int articleId);

	/**
	 * 通过文章ID查询文章信息
	 * @param articleId 文章ID
	 * @return Article文章实体信息
	 */
	Article selectById(int articleId);

	/**
	 * 分页查询文章列表
	 * @param query 查询条件
	 * @return List<Article>文章列表
	 */
	List<Article> selectList(@Param("e") ArticleQuery query, @Param("page") PageRequest page);

	/**
	 * 获取所有文章总记录数
	 * @return 总记录数
	 */
	int count(@Param("e") ArticleQuery query);

	/**
	 * 修改累加文章点击量
	 */
	int updateCount(@Param("id") int articleId, @Param("count") int count, @Param("column") String column);

	/**
	 * 新增资讯内容关联表
	 */
	int insertContent(Article article);

	/**
	 * 修改资讯内容关联表
	 */
	int updateContent(Article article);

	/**
	 * 删除资讯内容关联表
	 *
	 * @param articleId 需要删除的数据ID
	 * @return 结果
	 */
	int deleteContent(int articleId);
}
